package com.xyy.saas.payment.cores.api;

import com.xyy.saas.payment.cores.bo.OrderSettleResultBo;
import com.xyy.saas.payment.cores.param.ProfitSharingParam;
import com.xyy.saas.payment.cores.param.ProfitSharingQueryParam;
import com.xyy.saas.payment.cores.vo.*;

import java.util.List;

/**
 * @author wangtianqi
 * @date 2019/11/22 16:43
 */
public interface PaymentSettleApi {

    /**
     * 订单发起清分接口
     * @param orderClearingVo
     * @param sign
     * @return
     * 只需要根据返回值消息号判断是否成功
     */
    @Deprecated
    ResultVO orderClearing(OrderClearingVo orderClearingVo, String sign);


    /**
     * 订单退款发起退清分接口
     * @param orderRefundClearingVo
     * @param sign
     * @return
     * 只需要根据返回值消息号判断是否成功
     */
    @Deprecated
    ResultVO orderRefundClearing(OrderRefundClearingVo orderRefundClearingVo, String sign);


    /**
     * 设置订单结算时间接口
     * @param orderSettleVo
     * @param sign
     * @return
     */
    @Deprecated
    ResultVO<OrderSettleResultBo> orderSettle(OrderSettleVo orderSettleVo, String sign);

    /**
     * 结算/分润
     * @param profitsharingParam
     * @param sign
     * @return
     */
    ResultVO<ProfitSharingVo> profitSharing(ProfitSharingParam profitsharingParam, String sign);

    /**
     * 小雨点支付结算
     */
    ResultVO<Boolean> xydCreditPaySettle(String payNo);

    ResultVO pinganCreditProfitsharing(List<String> payNos);
    void retryAllProfit(Long minId,Integer status);
    /**
     * 结算/分润 根据业务单号查询支付平台流水号
     * @param queryParam
     * @param sign
     * @return
     */
    ResultVO<ProfitSharingVo> queryProfitSharingNoByBusinessOrderNo(ProfitSharingQueryParam queryParam, String sign);

    void retryProfitSharing(List<String> list);
}
